home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / web / modules / search.psc < prev    next >
Text File  |  2008-06-27  |  3KB  |  100 lines

  1. %code
  2.  
  3. %include publicfunctions.inc %/include
  4.  
  5. var
  6.   AText: WideString;
  7.   AProps, ASubs: TCatalogItemProps;
  8.   AColls, ASubColls: TImageCollections;
  9.   i, j: Integer;
  10.   ASg: TSearchGroup;
  11. begin
  12.   result := toWideString('');
  13.  
  14.   AText := Utf8Decode(Request.Params.Values['text']);
  15.   if AText = '' then
  16.     AText := Request.Params.Values['text'];
  17.   if AText = '' then
  18.   begin
  19.     result := result + 'no search text specified';
  20.     exit;
  21.   end;
  22.  
  23.   if Request.Params.Values['labels'] = 'y' then
  24.   begin
  25.     result := result + '<p>';
  26.     AProps := TCatalogItemProps.Create(TCatalogItemProp, '');
  27.  
  28.     
  29.     //Catalog.FindPropsByName (AText, AProps, '', ssAnyPosition, True, -1, True);
  30.     ASg := TSearchGroup.Create(nil);
  31.     ASg.BuildFromText (AText, '');
  32.     for i := 0 to ASg.Items.Count - 1 do
  33.     begin
  34.       ASubs := TCatalogItemProps.Create(TCatalogItemProp, '');
  35.         Catalog.FindPropsByName (ASg.Items.Items[i].SearchValue, ASubs, '', ASg.Items.Items[i].SearchStyle, True, -1, True);
  36.  
  37.         for j := 0 to ASubs.Count - 1 do
  38.           ASubs.Items[j].CopyTo (AProps, False);
  39.       ASubs.Free;
  40.     end;
  41.     ASg.Free;
  42.  
  43.     Catalog.PathNameForProps (AProps, ' :: ', True);
  44.  
  45.     AProps.Sort('PropName', stAscending);
  46.     if AProps.Count > 0 then
  47.     begin
  48.       for i := 0 to AProps.Count - 1 do
  49.       begin
  50.         result := result + '<a href="javascript:getHTML(''%var:PageOffset/./modules/labelimages.psc'', ''' + AjaxContainer + ''', ''GUID=' + AProps.Items[i].GUID + ''')">';
  51.         result := result + AProps.Items[i].Text;
  52.         result := result + '</a><br/>';
  53.       end;
  54.     end
  55.     else
  56.       result := result + 'no catalog labels found for ' + AText;
  57.  
  58.     AProps.Free;
  59.     result := result + '</p>';
  60.   end;
  61.  
  62.   if Request.Params.Values['albums'] = 'y' then
  63.   begin
  64.     result := result + '<p>';
  65.     AColls := TImageCollections.Create(TImageCollection, '');
  66.  
  67.     ASg := TSearchGroup.Create(nil);
  68.     ASg.BuildFromText (AText, '');
  69.     for i := 0 to ASg.Items.Count - 1 do
  70.     begin
  71.       ASubColls := TImageCollections.Create(TImageCollection, '');
  72.         Catalog.FindCollectionsByName (ASg.Items.Items[i].SearchValue, AColls, ASg.Items.Items[i].SearchStyle);
  73.  
  74.         for j := 0 to ASubColls.Count - 1 do
  75.           ASubColls.Items[j].CopyTo (AColls, False);
  76.       ASubColls.Free;
  77.     end;
  78.     ASg.Free;
  79.  
  80.     AColls.Sort('CollectionName', stAscending);
  81.     if AColls.Count > 0 then
  82.     begin
  83.       for i := 0 to AColls.Count - 1 do
  84.       begin
  85.         AColls.Items[i].Text := Catalog.PathNameForCollection (AColls.Items[i], ' :: ');
  86.         result := result + '<a href="javascript:getHTML(''%var:PageOffset/./modules/collimages.psc'', ''' + AjaxContainer + ''', ''GUID=' + AColls.Items[i].GUID + ''')">';
  87.         result := result + AColls.Items[i].Text;
  88.         result := result + '</a><br/>';
  89.       end;
  90.     end
  91.     else
  92.       result := result + 'no portfolio collections found for ' + AText;
  93.  
  94.     AColls.Free;
  95.     result := result + '</p>';
  96.   end;
  97.  
  98. end;
  99.  
  100. %/code